#pragma once

#include <string>
#include <memory>

class IMyComponent
{
public:
	typedef std::shared_ptr<IMyComponent> Ptr;

	virtual ~IMyComponent() {}

	virtual std::string GetDescription() const = 0;

	virtual std::string ManipulateString(const std::string &a, const std::string &b) = 0;
};

class ISeparator
{
public:
	typedef std::shared_ptr<ISeparator> Ptr;

	virtual ~ISeparator() {}

	virtual std::string GetSeparator() const = 0;
};


